<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 1. 创建一个根标签(将动态创建的元素,插入到这个标签中,从而使动态创建的元素可以在页面中渲染出来) -->
    <div id="root"></div>
    <!-- 2. 引入react和react-dom
    注意: 要先引入react,后引入react-dom.
    react.js提供了React对象.
    react-dom.js提供了ReactDOM
    -->
    <script src="./js/react.development.js"></script>
    <script src="./js/react-dom.development.js"></script>
    <script src="./js/babel.min.js"></script>

    <!-- 3. 在script标签中,写js,动态创建元素 -->
    <!-- 注意: 需要babel编译我们代码中的jsx,就要在script上写type="text/babel". 这样babel才会工作 -->
    <script type="text/babel">
      // 需求: arr数组中有多少个元素,则无需列表中有多少个li
      const arr = [
        { name: 'zs', age: 18 },
        { name: 'ls', age: 20 },
      ]
      // 根据arr,得到一个新数组,新数组中就是我们要渲染的jsx结构

      // map的返回值就是一个数组
      const liArr = arr.map((item, index) => {
        // map中return什么,新数组中就存了什么
        return (
          // 注意: key是用来提升react内部执行效率的.key的值不能重复,不建议用下标. 原因后面会讲. key要加到一段jsx的最外层的标签上
          <li key={index}>
            <h1>{item.name}</h1>
            <p>{item.age}</p>
          </li>
        )
      })
      // const liArr = [
      //   <li>
      //     <h1>name</h1>
      //     <p>age</p>
      //   </li>,
      //   <li>
      //     <h1>name</h1>
      //     <p>age</p>
      //   </li>,
      //   <li>
      //     <h1>name</h1>
      //     <p>age</p>
      //   </li>,
      // ]

      const div = (
        <div>
          <ul>{liArr}</ul>
        </div>
      )

      ReactDOM.render(div, document.getElementById('root'))
    </script>
  </body>
</html>
